Parallel processing devices are often used to speed up large computing tasks by splitting the tasks into portions (processes) which can be handled by different data processing units being able to communicate with each other. The different data processing units can then work in parallel on a computing task. The data processing units are often also referred to as central processing units (CPUs) or cores whereas several cores may be included in one CPU. That is, a processing device is a computer system which typically has two or more CPUs/cores to which different processes can be assigned for execution. In the following, such a data processing unit (e.g., a CPU in a plurality of CPUs, or a core in a plurality of cores in a CPU) is referred to as a processing unit.
Typically, an algorithm is developed in applications such as, for example, MATLAB or SCILAB. An algorithm within the context of this disclosure is a self-contained step-by-step set of operations to be performed by a processing device (as a whole). In a later stage, the program code implementing the algorithm may be adapted to be executed by multi-processing-unit systems (i.e., one or more processing devices with a plurality of data processing units). For example, in case of embedded systems the code needs to be generated before it can be deployed to and executed by processing units of the embedded system. There exist automatic solutions for such a parallelization of software code. However, a fully automatic parallelization may not lead to an optimized parallel code program for a given multi-processing-unit processing device. In general, the problem space may be too large to compute all parallelization options in a time interval so that the effect of changes in the original code on the parallelization can be evaluated in a reasonable manner. Typically, automatic parallelization algorithms use heuristics which can achieve good results in a relatively short computation time interval. However, it may be possible that not all optimization options can be computed during this time interval based on the heuristics.